package com.starpl.mobile.android.monthunsae.november.common;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;

import com.starpl.mobile.android.monthunsae.november.activity.LoginActivity;
import com.starpl.mobile.android.monthunsae.november.command.MonthUnsaeCommand;
import com.starpl.mobile.android.platform.common.ActivityUtil;
import com.starpl.mobile.android.platform.common.SharedUtil;
import com.starpl.mobile.android.platform.common.base.BaseApplication;
import com.starpl.mobile.android.platform.common.network.HttpHandler;

/**
 * 로그인/로그아웃 관련 기능들을 모아놓은 유틸리티 클래스
 * 
 * @author 우연화
 * @since 2011.03.16
 */
public class LoginUtil
{
	public static void logoutUser(final Activity activity)
	{
		DialogInterface.OnClickListener logoutListener = new DialogInterface.OnClickListener()
		{
			@Override
			public void onClick(DialogInterface dialog, int which)
			{
				MonthUnsaeCommand.logout(new HttpHandler(activity)
				{
					@Override
					public void didSucceed(Object result)
					{
						// 로그아웃시 자동로그인을 해제한다.
						SharedUtil.getInstance().putSharedPreference("autoLogin", false);
						SharedUtil.getInstance().putSharedPreference("autoLoginUserId", null);
						SharedUtil.getInstance().putSharedPreference("autoLoginUserPw", null);
						SharedUtil.getInstance().putSharedPreference("alarmList", null);
						BaseApplication.setGlobalPersistent("monthUnsae", null);
						BaseApplication.clearSessionKey();
						
						// 인텐트 테스크 플래그 처리 필요
						ActivityUtil activityUtil = new ActivityUtil(activity);
						activityUtil.setTargetActivity(LoginActivity.class);
						activityUtil.setRemoveTask();
						activityUtil.show();
						
						activity.finish();
					}
				});
			}
		};

		DialogInterface.OnClickListener cancelListener = new DialogInterface.OnClickListener()
		{
			@Override
			public void onClick(DialogInterface dialog, int which)
			{
				dialog.dismiss();
			}
		};

		new AlertDialog.Builder(activity)
			.setTitle(BaseApplication.getConfigPersistent("appsName"))
			.setMessage("개인 정보 보호를 위해 타인에게 양도시 로그아웃을 꼭 하시기 바랍니다.")
			.setPositiveButton("로그아웃", logoutListener)
			.setNegativeButton("취소", cancelListener)
			.show();
	}
}
